<?php

class AppController extends Controller {

    public $helpers = array (
            'Html',
            'Form',
            'Session',
            'Time',
            'Javascript'
    );

    public $components = array(
        'Session',
        'Auth',
        'RequestHandler'
    );

    function beforeFilter() {
        //Configure AuthComponent
        $this->Auth->fields = array(
            'username' => 'username',
            'password' => 'password'
        );
        $this->Auth->authorize = 'controller';
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'articles', 'action' => 'inicio');
        $this->Auth->loginError = __('La contraseña no se corresponde con un usuario activo', true);
        $this->Auth->authError = __('Permiso denegado', true);
        $this->Auth->autoRedirect = false;
//        $this->Auth->userScope = array('User.status' => 'activo'); // Habilito el login sólo para los usuarios habilitados


    }

    function isAuthorized() {
        return true;
    }

    /**
     * Función hecha por Javier Melero
     * Reemplaza los acentos en una cadena por sus carateres correspodientes sin acentos
     * @param String $string
     * @return String
     */
    function __strip_accents($text) {
        $text = htmlentities($text, ENT_QUOTES, 'UTF-8');
        $text = strtolower($text);
        $patron = array(
                // Espacios, puntos y comas por guion
                '/[\., ]+/' => '_',
                // Vocales
                '/&agrave;/' => 'a',
                '/&egrave;/' => 'e',
                '/&igrave;/' => 'i',
                '/&ograve;/' => 'o',
                '/&ugrave;/' => 'u',
                '/&aacute;/' => 'a',
                '/&eacute;/' => 'e',
                '/&iacute;/' => 'i',
                '/&oacute;/' => 'o',
                '/&uacute;/' => 'u',
                '/&acirc;/' => 'a',
                '/&ecirc;/' => 'e',
                '/&icirc;/' => 'i',
                '/&ocirc;/' => 'o',
                '/&ucirc;/' => 'u',
                '/&atilde;/' => 'a',
                '/&etilde;/' => 'e',
                '/&itilde;/' => 'i',
                '/&otilde;/' => 'o',
                '/&utilde;/' => 'u',
                '/&auml;/' => 'a',
                '/&euml;/' => 'e',
                '/&iuml;/' => 'i',
                '/&ouml;/' => 'o',
                '/&uuml;/' => 'u',
                '/&auml;/' => 'a',
                '/&euml;/' => 'e',
                '/&iuml;/' => 'i',
                '/&ouml;/' => 'o',
                '/&uuml;/' => 'u',
                // Otras letras y caracteres especiales
                '/&aring;/' => 'a',
                '/&ntilde;/' => 'n',
                // Agregar aqui mas caracteres si es necesario
        );

        $text = preg_replace(array_keys($patron), array_values($patron),
                $text);
        return $text;
    }

    /**
     * Función hecha por Javier Melero
     * Reemplaza espacios con guiones bajos y pone todo en minusculas,
     * para usar cadenas como id en html, clases css, nombres de variables, etc.
     * @param String $string
     * @return String
     */
    function __str_safe($string) {
        return strtolower(str_replace(' ', '_', $this->__strip_accents($string)));
    }

}